Manual de instalación de Linux para montar servidores (página 2)
SERVIDOR PROXY
Al servidor Proxy
también se le llama servidor de cache o de
aceleración, porque a parte de ser un medio de
protección de la intranet,
también permite acelerar el ingreso a la Internet de las estaciones
de trabajo.
Para funcionar como un medio de aceleración basta
que este servidor tenga una sola tarjeta de red,
pero ya con dos tarjetas de red
este servidor a parte de brindar aceleración
también se vuelve en un muy buen mecanismo de seguridad.
Para poder montar
un servidor PROXY en LINUX
Tenemos que verificar que en el sistema operativo
este instalado el SQUID. Los comandos para
realizar esta función
serian:
# rpm -q squid à
sirve para ver si esta instalado.
# rpm -ql squid à
sirve para ver los paquetes de squid.
# mcedit /etc/squid/squid.conf à sirve para configurar el
squid
Como configurar un servidor PROXY en
LINUX
Entramos al edit de esta forma: # mcedit
/etc/squid/squid.conf
Descomentar. Eso significa quitar el espacio en blanco y
el signo numeral.
Aproximadamente en la línea 54 se encuentra un
bloque de texto que dice
http_port 3128, lo descomentamos.
Aproximadamente en la línea 481 se encuentra un
bloque de texto que dice cache men 8MB, lo
descomentamos.
Aproximadamente en la línea 696 se encuentra un
bloque de texto que dice cache dir, lo descomentamos. En
el cache dir existen 100MB repartidos en 16 carpetas y dentro de
estas 16 existen 256 carpetas más.
Aproximadamente en la línea 703 se encuentra un
bloque de texto que dice cache_access_log, lo
descomentamos. Esto define la ruta donde estará el
archivo de la
bitácora.
Aproximadamente en la línea 711 se encuentra un
bloque de texto que dice cache_log, lo descomentamos. Esta
será la bitácora del cache.
Aproximadamente en la línea 721 se encuentra un
bloque de texto que dice cache_store_log, lo
descomentamos. Bitácora de almacenamiento,
en caso se este llenando el squid.
Aproximadamente en la línea 858 se encuentra un
bloque de texto que dice ftp_user, lo descomentamos. Sirve
para loguear usuarios.
Aproximadamente en la línea 873 se encuentra un
bloque de texto que dice ftp_passive on, lo descomentamos.
Para la transparencia de ficheros que están detrás
de un firewall.
Aproximadamente en la línea 1802 se encuentra un
bloque de texto que dice acl localhost y la línea
siguiente dice acl to_localhost. Damos un enter
entre estas dos líneas y procedemos a la
declaración de variables para
permitir o denegar accesos a ciertas páginas. Se declaran
las variables del siguiente modo:
acl mired src 192.168.200.0/24
acl denegados dstAdmin.microsoft.com
www.hi5.com
acl horaDia time MTWTF 8:00 –
13:00
acl horaTarde time MTWTF 16:00 –
20:00
acl videos urlpath_regex .avi$ .mp3$
Aproximadamente en la línea 1865 se encuentra un
bloque de texto que dice and finally deny damos un enter y
digitamos:
http_access deny denegados
http_access deny videos
http_access allow mired! HoraDia!
horaTarde!
http_access deny all
Se guardan cambios con la tecla f2 y se sale del editor
con la tecla f10.
En la pagina de comandos se ejecuta:
# service squid reload
# service squid status
# service squid start
A lo cual aparece un mensaje que dice lo
siguiente:
Inite_cache_dir /var/spool/squid.inicial…
[OK]
Ahora en las estaciones de trabajo con sistema operativo
XP entramos a las herramientas
de Internet, a la pestaña de conexión, Proxy,
puerto colocamos esto: 3128.
Y se puede cambiar a 65334 puertos para ser
usados.
Luego para visualizar a las páginas a las que
entran los usuarios, ejecutamos en la consola de comandos del
servidor en LINUX:
# tail –f /var/log/squid/access.log
Esto nos mostrará las páginas a las que
entran las estaciones de trabajo.
Para programar un Proxy transparente: FIREWALL
host virtual
Lo primero que debemos de tener en cuenta para montar un
FIREWALL es que necesitamos el squid + iptables, y
además que a la PC que tomaremos como servidor FIREWALL se
le debe de montar una segunda tarjeta de red. ETH0 la primera tarjeta
instalada junto con el sistema operativo y ETH1 la nueva tarjeta
de red, las cuales tendrán que ser configuradas de esta
forma:
ETH0 à
IP
publico
ETH1 à IP
privado
Además de estar instalado el squid,
también necesitamos que este instalado el IPTABLES. Este
se maneja en tablas, las cuales son:
Filter por defecto.
Nat paquetes que pasan.
Mangle aquellos que se quieren
modificar.
Las tablas son:
| IP origen | Puerto Origen | TCP
URP | IP destino | Puerto Destino
|
IPtables manipula la funcionabilidad de seguridad en
línea, su funcionamiento es en la capa de red
Para poder configurar el IPTABLES necesitamos descargar
un script desde Internet o saber cual es la codificación, la cual se tendrá que
guardar en el directorio OPT, el script se llama
firewall.txt o firewall1.txt.
Al establecer políticas
por defecto
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables –L à lista el contenido de la tabla
filter.
Input à
entra al firewall.
Forward à
aqui se genera o procesa.
Output à ya
es el nivel de salida.
Iptables –L –T nat
Prerouting à aquí se tratan los paquetes
antes de entrar.
Postrouting à se tratan los paquetes
después de su ingreso.
Ahora procedemos a la configuración de los IPs
dentro del archivo firewall.txt a traves de editor de
consola:
# cd
/opt
# mcedit firewall
# ls -la à
sirve para visualizar lo que hay dentro de la
carpeta.
# chmod u+x firewall à sirve para volver ejecutable el
script.
La configuración de los IPs es en relación
a nuestra ETH0 y ETH1 ya que debemos de verificar muy bien hacia
donde se deben de mandar las restricciones y hacia donde se debe
de filtrar datos.
Una vez echa la configuración de IPs procedemos a
agregar las variables:
# cd /etc/squid
# mcedit squid.conf
Y aproximadamente en la línea 2206 y 2226
descomentamos y ponemos ON y colocamos:
#rpm -q iptables
Httpd_accel_host virtual
Httpd_accel_port 80
Httpd_accel_with_proxy on
Httpd_accel_user_host_header on
Ejemplo de script para firewall entre red-local e
Internet con servicios
abiertos de puerto 25, 110, y 1723. Aplicando Reglas de
Firewall
FLUSH de reglas
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
iptables -t nat -X
iptables -t nat –Z
Establecemos política por
defecto
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
Empezamos a filtrar
REDIRECCIONES
Todo lo que venga por el exterior y vaya al puerto 80 lo
redirigimos a una maquina interna
#iptables -t nat -A PREROUTING -i eth0 -p tcp –dport
80 -j DNAT –to 192.168.10.12:80 à le configuramos el IP público
de la red.
Los accesos de un ip determinada a Terminal server se
redirigen e esa maquina
#iptables -t nat -A PREROUTING -s 221.23.124.181 -i
eth0 -p tcp –dport 3389 -j DNAT –to 192.168.10.12:3389
à le configuramos el IP
público de la red.
El localhost se deja (por ejemplo conexiones locales a
mysql)
iptables -A INPUT -i lo -j ACCEPT
Al firewall tenemos acceso desde la red local
iptables -A INPUT -s 192.168.100.0/23 -i eth1 -j
ACCEPT à le configuramos
el IP privado de la red.
Abrimos el acceso a puertos de correo
Abrimos el puerto 25, hay que configurar bien el relay
del servidor SMTP
#iptables -A INPUT -s 0.0.0.0/0 -p tcp –dport 25 -j
ACCEPT
El protocolo SMTP
nos sirve para nomtar un servidor mail, vale decir que se cree el
más usado para este tipo de aplicaciones.
Abrimos el pop3
#iptables -A INPUT -s 0.0.0.0/0 -p tcp –dport 110 -j
ACCEPT
El protocolo pop3 nos sirve para nomtar un servidor
mail, o hasta para el funcionamiento de un FTP
Y abrimos el puerto pptpd para la ip del adsl de casa
del jefe
#iptables -A INPUT -s 211.45.176.24 -p tcp –dport
1723 -j ACCEPT
Los protocolos PPTP
sirven para montaje de VPNs, las cuales permiten la transferencia
de datos de forma segura y en ciertos casos es mucho más
económico para una
empresa.
Ahora con regla FORWARD filtramos el acceso de la red
local al exterior. Como se explica antes, a los paquetes que no
van dirigidos al propio firewall se les aplican reglas de
FORWARD
Aceptamos que vayan a puertos 80
iptables -A FORWARD -s 192.168.100.0/23 -i eth1 -p
tcp –dport 80 -j ACCEPT
iptables -A FORWARD -s 192.168.100.0/23 -i eth1 -p
tcp –dport 8080 -j ACCEPT
à le configuramos
el IP privados de la red.
Aceptamos que vayan a puertos https
iptables -A FORWARD -s 192.168.100.0/23 -i eth1 -p
tcp –dport 443 -j ACCEPT
Los puertos HTTPS permiten montar un servidor
WEB
Aceptamos que consulten los DNS
iptables -A FORWARD -s 192.168.100.0/23 -i eth1 -p
tcp –dport 53 -j ACCEPT
iptables -A FORWARD -s 192.168.100.0/23 -i eth1 -p
udp –dport 53 -j ACCEPT
Esto permite traducir el nombre de dominio a
dirección IP y viceversa.
Y denegamos el resto. Si se necesita alguno, ya
avisaran
iptables -A FORWARD -s 192.168.100.0/23 -i eth1 -j
DROP
Ahora hacemos enmascaramiento de la red local y
activamos el BIT DE FORWARDING (imprescindible!!!!!)
iptables -t nat -A PREROUTING -p tcp -s
192.168.100.0/23 –dport 1863 -j DNAT –to-destination
192.168.5.254
iptables -t nat -A PREROUTING -p tcp –dport 80 -j
REDIRECT –to-ports 3128
iptables -t nat -A POSTROUTING -s 192.168.100.0/23 -o
eth0 -j MASQUERADE
Con esto permitimos hacer forward de paquetes en el
firewall, o sea que otras maquinas puedan salir a traves del
firewall.
echo 1 >
/proc/sys/net/ipv4/ip_forward
Y ahora cerramos los accesos indeseados del
exterior:
Nota: 0.0.0.0/0 significa: cualquier red
Cerramos el rango de puerto bien conocido
iptables -A INPUT -s 0.0.0.0/0 -i eth0 -p tcp –dport
1:1024 -j DROP
iptables -A INPUT -s 0.0.0.0/0 -i eth0 -p udp –dport
1:1024 -j DROP
Cerramos un puerto de gestion: webmin
iptables -A INPUT -s 0.0.0.0/0 -i eth0 -p tcp –dport
10000 -j DROP
Y cerramos el puerto del servicio
PPTPD, solo abierto para el jefe.
iptables -A INPUT -s 0.0.0.0/0 -i eth0 -p tcp –dport
1723 -j DROP
echo " OK . Verifique que lo que se aplica con:
iptables -L -n"
Roberto Carlos Suing
Olivari.
SCRIPT
FIREWALL
#!/bin/sh
## SCRIPT de IPTABLES – ejemplo del
manual de
iptables
## Ejemplo de script para firewall entre
red-local e internet con servicios abiertos de puerto 25, 110, y
1723
## Pello Xabier Altadill
Izura
## www.pello.info –
pello[arroba]pello.info
echo -n Aplicando Reglas de
Firewall…
## FLUSH de reglas
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z
## Establecemos politica por
defecto
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING
ACCEPT
iptables -t nat -P POSTROUTING
ACCEPT
## Empezamos a filtrar
## REDIRECCIONES
# Todo lo que venga por el exterior y
vaya al puerto 80 lo redirigimos a una maquina interna
#iptables -t nat -A PREROUTING -i eth0
-p tcp –dport 80 -j DNAT –to 192.168.10.12:80
# Los accesos de un ip determinada a
Terminal server se redirigen e esa maquina
#iptables -t nat -A PREROUTING -s
221.23.124.181 -i eth0 -p tcp –dport 3389 -j DNAT –to
192.168.10.12:3389
## Nota: eth0 es el interfaz conectado
al router y eth1
a la LAN
# El localhost se deja (por ejemplo
conexiones locales a mysql)
iptables -A INPUT -i lo -j
ACCEPT
# Al firewall tenemos acceso desde la
red local
iptables -A INPUT -s 192.168.100.0/23 -i
eth1 -j ACCEPT
## Abrimos el acceso a puertos de
correo
# Abrimos el puerto 25, hay que
configurar bien el relay del servidor SMTP
#iptables -A INPUT -s 0.0.0.0/0 -p tcp
–dport 25 -j ACCEPT
# Abrimos el pop3
#iptables -A INPUT -s 0.0.0.0/0 -p tcp
–dport 110 -j ACCEPT
# Y abrimos el puerto pptpd para la ip
del adsl de casa del jefe
#iptables -A INPUT -s 211.45.176.24 -p
tcp –dport 1723 -j ACCEPT
## Ahora con regla FORWARD filtramos el
acceso de la red local
## al exterior. Como se explica antes, a
los paquetes que no van dirigidos al
## propio firewall se les aplican reglas
de FORWARD
# Aceptamos que vayan a puertos
80
iptables -A FORWARD -s 192.168.100.0/23
-i eth1 -p tcp –dport 80 -j ACCEPT
iptables -A FORWARD -s 192.168.100.0/23
-i eth1 -p tcp –dport 8080 -j ACCEPT
# Aceptamos que vayan a puertos
https
iptables -A FORWARD -s 192.168.100.0/23
-i eth1 -p tcp –dport 443 -j ACCEPT
# Aceptamos que consulten los
DNS
iptables -A FORWARD -s 192.168.100.0/23
-i eth1 -p tcp –dport 53 -j ACCEPT
iptables -A FORWARD -s 192.168.100.0/23
-i eth1 -p udp –dport 53 -j ACCEPT
# Y denegamos el resto. Si se necesita
alguno, ya avisaran
iptables -A FORWARD -s 192.168.100.0/23
-i eth1 -j DROP
# Ahora hacemos enmascaramiento de la
red local y activamos el BIT DE FORWARDING
(imprescindible!!!!!)
iptables -t nat -A PREROUTING -p tcp -s
192.168.100.0/23 –dport 1863 -j DNAT –to-destination
192.168.5.254
iptables -t nat -A PREROUTING -p tcp
–dport 80 -j REDIRECT –to-ports 3128
iptables -t nat -A POSTROUTING -s
192.168.100.0/23 -o eth0 -j MASQUERADE
# Con esto permitimos hacer forward de
paquetes en el firewall, o sea que otras m?quinas puedan salir a
traves del firewall.
echo 1 >
/proc/sys/net/ipv4/ip_forward
## Y ahora cerramos los accesos
indeseados del exterior:
# Nota: 0.0.0.0/0 significa: cualquier
red
# Cerramos el rango de puerto bien
conocido
iptables -A INPUT -s 0.0.0.0/0 -i eth0
-p tcp –dport 1:1024 -j DROP
iptables -A INPUT -s 0.0.0.0/0 -i eth0
-p udp –dport 1:1024 -j DROP
# Cerramos un puerto de gesti?n:
webmin
iptables -A INPUT -s 0.0.0.0/0 -i eth0
-p tcp –dport 10000 -j DROP
# Y cerramos el puerto del servicio
PPTPD, solo abierto para el jefe.
iptables -A INPUT -s 0.0.0.0/0 -i eth0
-p tcp –dport 1723 -j DROP
Echo "OK. Verifique que lo que se aplica
con: iptables -L -n"
# Fin del script
Autor:
Roberto Carlos Suing Olivar
Página anterior | Volver al principio del trabajo | Página siguiente |